home *** CD-ROM | disk | FTP | other *** search
Wrap
1 iff=0thenf=1:gosub60000 5 xp=7.5 :rem * bowling joe garrett 10 rem * 2/3/86 15 rem *** main program *** 18 gosub 4500: rem * get names 20 gosub 1000: rem * initialize all 25 gosub 3000: rem * draw alley 35 for fr=1 to 10 37 : for pl=1 to np 38 : for bl=1 to 2 40 : gosub 5000: rem * get height 50 : gosub 6000: rem * roll ball 60 : gosub 10000:rem * do score 63 : if fr=10 and bl=2 and not xb(pl) then gosub 9000: rem * 10th frame? 64 poke53280,0 65 : next bl 67 : gosub 3090 : rem * reset pins 70 : next pl 80 next fr:gosub17000:rem* clear player 100 print"play again? (y/n) " : poke 198,0 105 print" " 110 get t$: ift$="" then110 120 if t$="y" then run 125 if t$<>"n" then 110 127 poke928,0:print"[147][194]ye bye bowling..." 130 load"hello connect",8:end 998 rem *** initialize everything *** 999 stop 1000 pokev+21,0:print "[147]wait...":u=rnd(-ti):eb$(1)=" ":eb$(2)=" " 1002 rem *** sprite data *** 1005 dim sc$(12,2,3) : rem * score array 1010 poke53280,0 : poke53281,12 :ap=102:poke53248+29,0 1015 forw1=1to12:forw2=1to2:forw3=1to2:sc$(w1,w2,w3)=" ":sc$(w1,w2,3)=" " 1017 nextw3:nextw2:nextw1 1020 dim pp(10) : rem * pin positions 1030 for t = 1 to 10 1040 read pp(t) : rem * read pins pos's 1050 next 1060 data 1335,1297,1377,1259,1339,1419,1221,1301,1381,1461 1070 for t1=1175 to 1181 : rem * make pins white 1080 for t2=0 to 240 step 40 1090 poke t1+t2+54272,1 1100 next t2 1110 next t1 1120 gosub 4000 : rem * score frames 1140 v=53248:poke2042,13:pokev+41,0 1370 rem *** direction data 1380 dr$(1)="[183]":dr$(2)="[197]":dr$(3)="[196]":dr$(4)="[192]":dr$(5)="[198]":dr$(6)="[210]" 1390 dr$(7)="[175]" 1990 gosub4530:return 2000 : 2998 rem *** draw alley *** 3000 print " [154] [152] " 3002 print " [154] [152] " 3005 for t=1 to 7 3010 print" [152][158][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][152] " 3015 next t 3020 print " [154] [152] " 3022 print " [154] [152] " 3025 print"....[157][157].[157][157].[157][157]." 3090 for t = 1 to 10 3095 : poke pp(t),81:pokepp(t)+54272,1 3100 next 3990 return 3992 pokepp(4),81:pokepp(7),81:pokepp(9),81:pokepp(10),81:bl=1:return 3996 : 3998 rem *** draw score frames *** 4000 print"[176][192][192][192][192][192][192][192][192][192][192][178][192][192][192][178][192][192][192][178][192][192][192][178][192][192][192][178][192][192][192][174]" : r=1 4010 print"[221]name [221] 1 [221] 2 [221] 3 [221] 4 [221] 5 [221]" 4020 print"[171][192][192][192][192][192][192][192][192][192][192][219][192][178][192][219][192][178][192][219][192][178][192][219][192][178][192][219][192][178][192][179]" 4030 print"[221] [221] [221] [221] [221] [221] [221] [221] [221] [221] [221] [221]" 4040 print"[221] [171][192][177][192][219][192][177][192][219][192][177][192][219][192][177][192][219][192][177][192][179]" 4050 print"[221] [221] [221] [221] [221] [221] [221]" 4060 rem print"[171][192][192][192][192][192][192][192][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][179]" 4070 if r=1 then r=2 : goto 4020 4075 print"[221] [221] [221] [221] [221] [221] [221]" 4080 print"[145][173][192][192][192][192][192][192][192][192][192][192][177][192][192][192][177][192][192][192][177][192][192][192][177][192][192][192][177][192][192][192][189]" 4090 pokev+21,0:return 4480 rem *** get names 4490 : 4500 if peek(850)<>7 or peek(851)<>255 then load"ball",8,1 4502 pokev+21,0:input"[147]1 or 2 players";np:if np<1 or np>2 then 4500 4503 input"[147]what is your name player 1";nm$(1) 4504 if np=1 then 4510 4505 input"[147]what is your name player 2";nm$(2) 4510 nm$(1)=left$(nm$(1),9) 4512 nm$(2)=left$(nm$(2),9) 4515 return 4525 rem *** print players names 4530 print"" nm$(1) 4532 print"" nm$(2) 4535 print" " 4550 return 4980 rem *** input where to throw ball 4990 : 5000 pokev+21,0:gosub5200:dn$="[157] [153]":tc=3 :ht=1 :dn=4 : sp=23:sr=0 5005 :p0=0:p1=0:p2=0:p3=0:p4=0:p5=0:p6=0:p7=0:p8=0:p9=0:fs=0:gosub 17000 5010 printdn$;:fort=1 to dn:print"";:next t: print dr$(tc); 5020 get t$:if t$="" then 5020 5030 if t$=chr$(13) then sp=sp+dn/2-1:goto 5300 5040 if t$="" then sp=sp+1:tc=tc+1 5045 if t$="s" then fs=-1:sp=20:goto5300 5050 if t$="[145]" then sp=sp-1:tc=tc-1 5060 if sp<0 then sp=0: dn=1:tc=1:goto5010 5070 if sp=49 then sp=48:dn=7:tc=7:goto5010 5080 if tc=8 then tc=1 5090 if tc=0 then tc=7 5100 dn=int(sp/7)+1: goto 5010 5200 print"align the green mark using cursor keys " 5210 print"press return when satisfied with mark":return 5300 print"[158]use space bar to curve ball during roll" 5310 print" " 5320 print" [157] [157] [157] [157] [157] [157] [157] " 5330 return 5980 rem *** roll ball *** 5990 : 6000 pokev+4,0:pokev+16,0:y=sp+75:pokev+5,y:pokev+21,4 6002 gosub19500:rem *** ball roll sound 6005 forp=1to10:p(p)=32:nextp 6010 fort=1 to 255 step 3:pokev+4,t:pokev+5,y:y=y+rnd(1)*.5-.25 6030 gett$:ift$=" "then y=y-rnd(1) 6040 nextt:sl=0:if y>96andy<103 then sl=-1 6042 gosub6500: rem *** proc pin 1 6100 pokev+16,4:fort=1 to 11:pokev+4,t:pokev+5,y:nextt 6110 gosub 6700:rem *** proc row 2 6120 pokev+16,4:fort=12 to 27:pokev+4,t:pokev+5,y:nextt 6130 gosub 6900:rem *** proc row 3 6140 pokev+16,4:fort=28to43 :pokev+4,t:pokev+5,y:nextt 6150 gosub 7100:rem *** proc row 4 6154 fort8=7to10:w=pp(t8):ifpeek(w)=apthenpokew+54272,7 6155 if peek(pp(10))<>ap then pokepp(10)+54272,1 6156 next 6160 fort=44to86 :pokev+4,t:pokev+5,y:nextt 6170 gosub8050:gosub 8000: if ps=0 and fr<10 then bl=2 6180 pokes+4,0:pokes+11,0:return 6498 rem *** hit pin 1? *** 6500 if y>90 and y<109 then gosub20000:pokepp(1),ap:pokepp(1)+54272,7 6510 p1=-1:return 6698 rem *** knock down row 2 *** 6699 : 6700 j2=0:j3=0: ify>=117 or y<=81 then return 6705 ify>91 and y<107 then j2=-1:j3=-1: goto6720 6710 if(y>81 and y<92) then j2=-1 :goto6720 6715 if(y>106 and y<117) then pokepp(3),ap:pokepp(3)+54272,7:return 6720 if j2 then pokepp(2),ap:pokepp(2)+54272,7 6725 if j3 then pokepp(3),ap:pokepp(3)+54272,7 6730 if y<98 andp1 then p6=-1:return 6735 ify>100 andp1 then p4=-1:return 6898 rem *** knock down row 3 *** 6899 : 6900 if (y<=73 or y >=125) then return 6902 gosub18000: gosub19000 6905 if y<=89 then pokepp(4),ap:goto6950 6910 if y<=92 then pokepp(4),ap:pokepp(5),ap:goto6940 6915 if y<=105 then pokepp(5),ap:goto6940 6925 if y<109 then pokepp(5),ap:pokepp(6),ap:goto6940 6930 if y<=124 then pokepp(6),ap 6940 ifp4 then pokepp(4),ap 6945 ifp6 then pokepp(6),ap 6947 rem ifbl=2 then y=75 6950 : 6960 fort8=4to6:w=pp(t8):ifpeek(w)=apthen pokew+54272,7 6970 next:return 7098 rem *** knock down row 4 *** 7099 : 7100 pr=5:if (y<=66 or y >=132) then return 7105 if y<82 then pokepp(7),ap:pokepp(7)+54272,7:return 7110 if y<85 then pokepp(7),ap:pokepp(8),ap:pr=3:return 7115 if y<98 then pokepp(8),ap:pr=7:goto7150 7120 if y<101 then pokepp(8),ap:pr=2:pokepp(9),ap:goto7150 7125 if y<114 then pokepp(9),ap:pr=7:goto7150 7130 if y<117 then pokepp(9),ap:pr=3:pokepp(10),ap:goto7150 7135 pokepp(10),ap 7150 if bl=2 then pr=1 7153 gosub23000:if rd then p7=-1 7155 gosub23000:if rd then p8=-1 7160 gosub23000:if rd then p9=-1 7165 gosub23000:if rd then p0=-1 7170 if p7 thenpokepp(7),ap 7175 if p8 thenpokepp(8),ap 7180 if p9 thenpokepp(9),ap 7185 if p0 thenpokepp(10),ap 7190 if p1 and not sl then if int(rnd(1)*10)+1=5 then fs=-1 7200 if bl=1 then return 7210 if int(rnd(1)*500)<>428then return 7220 fs=-1:print"!!! i can't believe it !!! " 7230 print" " 7240 return 7251 if not sl then return 7999 rem *** count standing pins *** 8000 ps=0 :forf=1to10:if peek(pp(f))=81then ps=ps+1 8010 next f 8015 if bl=1 and ps=0 then sr=-1 8020 return 8050 if fs then fort=1 to 10:poke pp(t),ap:next 8060 return 8998 rem *** extra ball checker *** 8999 : 9000 xb(pl)=-1 9010 if sc$(10,pl,2)="[169][146]" then gosub3090:bl= 1:eb=-1 9020 if sc$(10,pl,2)="[214]" then gosub3090: bl= 1:eb=-1 9030 if sc$(10,pl,1)="[214]" then bl= 1:eb=-1 9040 return 9060 : 9998 rem *** scoring *** 9999 : 10000 if fr=10 then gosub 15000: goto 10045 10002 if sr then sc$="[214]" :gosub 3090: goto 10047 10005 if bl=2 and ps=0 then sc$="[169][146]": goto 10047 10010 if bl=1 then s1=10-ps:sc=s1 10020 if bl=2 then sc=10-ps-s1 10025 if bl=2 and fr=10 and sc$(10,pl,1)="[214]" and not xb(pl) then sc=10-ps 10027 if bl=2 and fr=10 and sc$(10,pl,1)="[214]" and eb(pl)<>10 then sc=10-ps-s1 10030 sc$=str$(sc):l=len(sc$):if sc=10 and xb(pl) then sc$="[214]" 10040 if l>1 then sc$=right$(sc$,1) 10045 if xb(pl) then eb$(pl)=sc$: eb=0:eb(pl)=sc: gosub 13000: goto 10050 10047 if bl=2 and ps=0 and sc$(10,pl,1)="[214]" then sc$="[214]" 10048 sc$(fr,pl,bl)=sc$:gosub 13000 :rem * do score 10050 s1$=sc$(8,pl,2):s2$=sc$(9,pl,2):s3$=sc$(10,pl,1):v8=val(sc$(8,pl,3))+10 10051 v8$=str$(v8):v8$=right$(v8$,3) 10052 ifs1$="[214]"ands2$="[214]"ands3$="[214]"andfr=10andbl=1 thensc$(8,pl,3)=v8$ 10054 print"[158]"; 10055 f1=fr-4:iff1<1 thenf1=1 10060 forqt=f1 to fr 10065 forgt=1 to 2 10067 if gt=2 then print"[157][157][157][157]"; 10070 printsc$(qt,gt,1)""sc$(qt,gt,2)"[157][157][157]"sc$(qt,gt,3)"[145][145]"; 10072 if gt=2 then print"[145][145][145][145]"; 10073 next gt 10075 nextqt:eb=0 10080 if bl=2 then print""; 11895 print 11898 rem *** print frame # 11899 : 11900 f1=fr-4:iff1<1 thenf1=1 11905 print""; 11910 forqt=f1 to fr : fr$=str$(qt):fr$=right$(fr$,1) 11920 print fr$"";:next qt 11925 if fr <> 10 then return 11935 print"10"; 11940 print"[145][192][192][174][157][157][157] [221][157][157][157][178][192][179][157][221][157][157][157][177][192][179][157][157][157] [221][157][157][157][178][192][179][157][221][157][157][157][177][192][179][157][157][157] [221][157][157][157][192][192][189]" 11950 if (eb(1)=0 and eb(2)=0) then return 11960 print"[158]"; 11965 if eb(1)<>0 then print eb$(1) 11967 print"[158]"; 11970 if eb(2)<>0 then print eb$(2) 11973 rem bl=2 11975 return 11995 : 12998 rem *** compute score *** 12999 : 13000 ws=fr-2:if ws<1 then ws=1 13005 for ce=ws to fr 13007 if ce=10 then gosub 14000:next ce:return 13010 for e2=1 to np:pv=0:ct=0 13012 if ce>1 then if sc$(ce-1,e2,3)<>" " then pv=val(sc$(ce-1,e2,3)) 13014 s1$=sc$(ce,e2,1):s2$=sc$(ce,e2,2):s3$=sc$(ce,e2,3):s4$=sc$(ce+1,e2,1) 13015 if ce=8ands1$="[214]"ands4$="[214]"andsc$(10,e2,1)="[214]"thenct=-1:sc=30:return 13016 s5$=sc$(ce+1,e2,2) 13017 if s2$=" " then 13250 13018 ifs2$="[169][146]" then gosub 13500:goto13055 13020 if s3$<>" " then 13250 13030 if((s2$>"/")and(s2$<":"))then s3=val(s1$)+val(s2$):ct=-1:goto 13070 13050 if s2$="[214]" then gosub 13710: rem *** count strike 13055 if not ct then 13250 13060 if s3=0 then 13250 13070 if ce=1 and not sr then s3$=str$(s3):goto13210 13198 if ct then s3=pv+s3 13199 rem if ct and not na(pl) then na(pl)=-1:s3=s3+eb(pl) 13200 s3$=str$(s3) 13210 if len(s3$)<3 then s3$=s3$+" ":goto 13210 13213 s7$=sc$(ce+1,e2,1) 13220 if len(s3$)>3 then s3$=right$(s3$,3) 13230 sc$(ce,e2,3)=s3$ 13250 next e2 13260 next ce : return 13498 rem *** count up a spare *** 13499 : 13500 if s5$="[214]" ors4$="[214]" then s3=20:ct=-1:return 13505 rem if fr=10 then s4$=eb$(pl) 13510 dd=(s4$>"/" and s4$<":") 13520 if dd then s3=10+val(s4$):ct=-1:return 13530 if s4$=" " and s5$=" " then ct=0:return 13700 rem *** count up a strike 13710 s4$=sc$(ce+1,e2,2):s5$=sc$(ce+2,e2,2):s6$=sc$(ce+2,e2,1) 13711 if s4$="[169][146]" then s3=20:ct=-1:return 13712 if ce=8thengosub13900:ifqthenreturn 13713 if s4$=" " then ct=0:return 13714 s7$=sc$(ce+1,e2,1) 13715 if s7$="[214]" then gosub13800:return 13716 if s4$="[214]" and s5$=" " ands6$=" " then ct=0: return 13720 if s4$="[214]" and s5$="[214]" then s3=30:ct=-1:return 13733 if s4$="[214]" and s6$<>" " then s3=20+val(s6$):ct=-1:return 13735 s3=10+val(s4$)+val(s7$):ct=-1:return 13740 : 13799 rem *** ninth frame strike with strike in 10th frame *** 13800 if s4$="[214]" then ct=-1:s3=30:return 13810 ct=-1:s3=20+val(s4$):return 13900 if sc$(8,pl,2)="[214]" andsc$(9,pl,2)="[214]" and sc$(10,pl,1)="[214]"then q=-1:sc=30 13910 q=0:return 13998 rem *** 10th frame scorer *** 14000 if sc$(9,pl,3)=" " then return 14010 pv=val(sc$(9,pl,3)) 14020 s1=val(sc$(10,pl,1)) 14030 s2=val(sc$(10,pl,2)) 14040 s3=eb(pl):if eb$(pl)=" " then s3=0 14050 if sc$(10,pl,1)="[214]" then s1=10 14060 if sc$(10,pl,2)="[169][146]" then s1=0:s2=10 14070 if sc$(10,pl,2)="[214]" then s2=10 14080 if eb$(pl)="[169][146]" then s3=10:s2=0 14085 if eb$(pl)="[214]" then s3=10 14090 s=s1+s2+s3+pv:pv=0 14100 sc$=str$(s) 14110 sc$=right$(sc$,3) 14120 if xb(pl) then sc$(10,pl,3)=sc$ 14125 if s1<>10 and s2 <> 10 then sc$(10,pl,3)=sc$ 14130 return 14998 rem *** score frame 10 *** 14999 : 15000 if bl=1 and sr then sc$="[214]":fort=1to50:next:gosub3090: return 15010 if bl=2 and sr and not xb(pl) then sc$="[214]":gosub3090 :return 15015 if bl=2 and xb(pl)andps=0 andsc$(10,pl,2)="[169][146]" then sc$="[214]":return 15020 if bl=2 and xb(pl)andps=0 andsc$(10,pl,2)<>"[214]" then sc$="[169][146]":sr=0:return 15022 if bl=2 and xb(pl)andps=0 andsc$(10,pl,2)="[214]" then sc$="[214]":return 15025 ifbl=2andnotxb(pl)andps=0andsc$(10,pl,1)<>"[214]"thensc$="[169][146]":gosub3090: return 15030 if bl=2 and not xb(pl) and sc$(10,pl,1)="[214]" then gosub16200:return 15040 if bl=1 and not sr then sc=10-ps : sz=sc 15050 if bl=2 and not sr and xb(pl) then sc=10-sz-ps:eb(pl)=sc 15055 if bl=2 and not sr and xb(pl) and sc$(10,pl,2)="[169][146]" then sc=10-sy-ps 15065 if bl=2 and not sr and not xb(pl) then sc=10-ps-sz:eb(pl)=sc 15100 sc$=right$(str$(sc),1) : return 16000 yl=val(sc$(10,pl,2)) 16010 sc=10-yl-ps:sc$=str$(sc):sc$=right$(sc$,1) 16020 if ps=0 then sc$="[169][146]" 16030 return 16198 rem *** kjfkjg *** 16200 sc=10-ps:eb(pl)=sc:sc$=right$(str$(sc),1): sz=sc: return 16998 rem *** point to current player 16999 : 17000 if pl=1 then print"[149]>>>[157][157][157] " 17005 if np=1 and fr<11 then return 17010 if pl=2 and np=2 then print" [157][157][157][149]>>>" 17020 if pl=(np+1) then print" [157][157][157] " 17030 return 17998 rem *** animate 6 pin on spare 17999 : 18000 if bl<>2 or peek(pp(6))=ap or y<121 or y>126 then return 18010 poke1419,ap 18020 poke1379,81:poke1379+54272,1::::::::::::::: 18030 poke1379,ap:poke1379+54272,7 18040 poke1340,81:poke1340+54272,1::::::::::::::: 18050 poke1340,ap:poke1340+54272,7 18060 poke1300,81:poke1300+54272,1::::::::::::::: 18070 poke1300,ap:poke1300+54272,7 18080 poke1261,81:poke1261+54272,1::::::::::::::: 18090 poke1261,ap:poke1261+54272,7 18200 if (rnd(1)*10)<xpthen pokepp(7),ap 18210 if (rnd(1)*10)<xpthen pokepp(8),ap 18220 return 18998 rem *** animate 4 pin on spare 18999 : 19000 if bl<>2 or peek(pp(4))=ap or y>77 or y<72 then return 19010 poke1259,ap 19020 poke1299,81:poke1299+54272,1::::::::::::::::::::::::::::::::::::::::::::: 19030 poke1299,ap:poke1299+54272,7 19040 poke1340,81:poke1340+54272,1::::::::::::::::::::::::::::::::::::::::::::: 19050 poke1340,ap:poke1340+54272,7 19060 poke1380,81:poke1380+54272,1::::::::::::::::::::::::::::::::::::::::::::: 19070 poke1380,ap:poke1380+54272,7 19080 poke1421,81:poke1421+54272,1::::::::::::::::::::::::::::::::::::::::::::: 19090 poke1421,ap:poke1421+54272,7 19100 if ((rnd(1)*10)<xp) then pokepp(9),ap 19110 if ((rnd(1)*10)<xp) then pokepp(10),ap 19120 return 19498 rem *** ball roll sound 19499 : 19500 s=54272:ifgx=1thenpokes+4,129:pokes+11,129:return 19505 fort=stos+24:poket,0:next 19510 pokes+24,31:pokes+23,3 19520 pokes,25 :pokes+1,1 19530 pokes+5,0 :pokes+6,240 19540 pokes+21,0 19545 pokes+22,0 :pokes+4,129 19560 pokes+7,100 :pokes+8,1 19570 pokes+12,0 :pokes+13,240 19590 pokes+11,129:gx=1 19600 return 19980 rem *** animate pin 1 *** 19990 : 20000 if y<89 or y>109 or peek(pp(1))=apthen return 20010 if y>95 and y<103 then 20800 20020 if y<96 then 20500 20030 rem *** 1 pin flys upward *** 20040 poke1335,ap 20050 poke1297,81:poke1297+54272,1::::::::::::::: 20060 poke1297,ap:poke1297+54272,7 20070 poke1296,81:poke1296+54272,1::::::::::::::: 20080 poke1296,ap:poke1296+54272,7 20090 poke1259,81:poke1259+54272,1::::::::::::::: 20100 poke1259,ap:poke1259+54272,7 20110 poke1258,81:poke1258+54272,1::::::::::::::: 20120 poke1258,ap:poke1258+54272,7 20130 poke1220,81:poke1220+54272,1::::::::::::::: 20140 poke1220,ap:poke1220+54272,7 20150 if int(rnd(1)*10)<5then pokepp(7),ap:pokepp(10)+54272,7 20160 return 20500 rem *** 1 pin flys downward *** 20510 poke1335,ap 20520 poke1376,81:poke1376+54272,1::::::::::::::: 20530 poke1376,ap:poke1376+54272,7 20540 poke1377,81:poke1377+54272,1::::::::::::::: 20550 poke1377,ap:poke1377+54272,7 20560 poke1418,81:poke1418+54272,1::::::::::::::: 20570 poke1418,ap:poke1418+54272,7 20580 poke1419,81:poke1419+54272,1::::::::::::::: 20590 poke1419,ap:poke1419+54272,7 20600 poke1460,81:poke1460+54272,1::::::::::::::: 20610 poke1460,ap:poke1460+54272,7 20620 if int(rnd(1)*10)<5then pokepp(10),ap:pokepp(10)+54272,7 20630 return 20800 rem *** 1 pin flys backward *** 20810 poke1335,ap 20820 poke1336,81:poke1336+54272,1::::::::::::::: 20830 poke1336,ap:poke1336+54272,7 20840 poke1337,81:poke1337+54272,1::::::::::::::: 20850 poke1337,ap:poke1337+54272,7 20860 poke1338,81:poke1338+54272,1::::::::::::::: 20870 poke1338,ap:poke1338+54272,7 20880 poke1339,81:poke1339+54272,1::::::::::::::: 20890 poke1339,ap:poke1339+54272,7 20900 poke1341,81:poke1341+54272,1::::::::::::::: 20910 poke1341,ap:poke1341+54272,7 20920 return 23000 rem if bl=2 then pr=2:goto23010 23005 e=int(rnd(1)*10)+1 23010 if e<=pr then rd=-1:return 23020 rd=0:return 50000 rem *** 50005 py=99:px=1:v=53248:pokev+16,4 50010 pokev+21,4:pokev+4,px :pokev+5,py 50015 print" [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"px,py; 50020 get t$:ift$="" then 50020 50030 ift$="" then py=py+1:goto50010 50035 ift$="," then px=px-1:ifpx=-1thenpx=0:goto50010 50040 ift$="[145]" then py=py-1:goto50010 50045 ift$="." then px=px+1:goto50010 50050 ift$=chr$(13) then pokev+21,0:return 50060 goto50010 60000 nm$="[202]oe [199]arrett":pr$="[213]p [217]our [193]lley" 60005 deffncn(n)=int(19-n/2) 60010 t$=" ":c=0:c$="":print"[147]":poke53281,0 60015 printspc(7)""t$:printspc(7)" [146]" 60020 printtab(fncn(len(pr$)))"[145]"pr$ 60025 printspc(7)""t$:print:printtab(18)"by" 60030 print:printspc(fncn(len(nm$)))"[158]"nm$"" 60035 print:printspc(12)"[195]opyright 1986" 60040 print:print:print:print" [204][207][193][196][211][212][193][210] is not public domain." 60045 print:print" [208]lease respect the author's rights." 60050 print:print" [208]ress space bar to continue." 60055 forcc=1to48:getk$:ifk$=" "then60070 60060 ifcc=1thenprintmid$(c$,c+2,1)"[145][145]";:c=not(c) 60065 next:goto60050 60070 print"[147]" c$chr$(142):return